package com.rimi.project.commos;

import lombok.Data;

/**
 *  响应数据格式
 * @author chao
 * @date 2020/2/24
 */

@Data
public class ResponseData {

    /**
     *  响应状态码
     */
    private int code;

    /**
     *  响应的信息
     */
    private String msg;

    /**
     *  响应数据
     */
    private Object data;

    /**
     *  有响应数据的构造
     * @param code
     * @param msg
     * @param data
     */
    public ResponseData(Status status, Object data) {
        this.code = status.getCode();
        this.msg = status.getMsg();
        this.data = data;
    }

    /**
     *  没有响应数据的构造
     * @param code
     * @param msg
     */
    public ResponseData(Status status ) {
        this(status,null);
    }

    /**
     *  请求成功，没有参数
     * @return
     */
    public static ResponseData onSuccess() {
        return onSuccess(null);
    }

    /**
     *  请求成功，有响应参数
     * @param data
     * @return
     */
    public static ResponseData onSuccess(Object data) {
        return new ResponseData(Status.OK,data);
    }

    /**
     *  请求失败，失败一般不会有数据返回
     * @param status
     * @return
     */
    public static  ResponseData onFailed(Status status) {
        return new ResponseData(status);
    }
}
